package org.finesys.common.hazelcast.core.support;

import com.hazelcast.collection.ISet;
import lombok.RequiredArgsConstructor;
import org.finesys.common.hazelcast.core.base.DistributedSet;

import java.util.Set;

@RequiredArgsConstructor
public class HazelcastSet<T> implements DistributedSet<T> {
    private final ISet<T> iSet;

    /**
     * 获取分布式集合
     *
     * @return 分布式集合
     */
    @Override
    public Set<T> values() {
        return iSet;
    }

    /**
     * 添加
     *
     * @param data 数据
     */
    @Override
    public void add(T data) {
        iSet.add(data);
    }

    /**
     * 删除
     *
     * @param data 数据
     */
    @Override
    public void delete(T data) {
        iSet.remove(data);
    }

    /**
     * 清空所有数据
     */
    @Override
    public void clear() {
        iSet.clear();
    }
}
